#if !defined(__APP_DEVICE_H)
#define __APP_DEVICE_H
#include "app_buffer.h"
#include <pthread.h>
//设备结构他体
typedef struct {
    char *filename; // 串口文件名
    int fd;         // 串口文件描述符
    Buffer *up_buffer; // 上行缓冲区
    Buffer *down_buffer; // 下行缓冲区
    pthread_t read_thread; // 不断读取串口数据的线程标识
    int is_running; // 读线程是否正在运行标识  0：没有运行 1：正在运行
    long last_write_time; // 上次写入数据的时间
    int (*post_read)(char *data, int len); // 将蓝牙数据转换为字符数组消息
    int (*pre_write)(char *data, int len); // 将字符数组消息转换为蓝牙数据
}Device;
/**
 * 初始化设备  => 只需要一台就可以
 */
Device *app_device_init(char *filename);

/**
 * 启动设备
 */
int app_device_start();

/**
 * 销毁设备
 */
void app_device_destroy();

#endif